home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998…tember: Reference Library / Dev.CD Sep 98 RL1.toast / Technical Documentation / develop / develop Issue 24 / develop Issue 24 code / Scriptable Database 1.0a15.sea / Scriptable Database 1.0a15 / Application / DBElementToken.h / DBElementToken.h
Encoding:
C/C++ Source or Header  |  1996-02-20  |  3.2 KB  |  88 lines  |  [TEXT/CWIE]

  1.  
  2. #ifndef __DBELEMENTTOKEN__
  3. #define __DBELEMENTTOKEN__
  4.  
  5. //
  6. // For class definiton of TAbstractDesignator
  7. //
  8. #include "AbstractDesignator.h"
  9.  
  10. //
  11. // For AConst<> and AnUpdate<>
  12. //
  13. #include "ReferenceTemplates.h"
  14.  
  15. #include "Int64.h"
  16.  
  17. class TDBElement;
  18. class TTransaction;
  19.  
  20. class TDBElementToken : public TAbstractDesignator
  21. {
  22. private:
  23.     AConst<TDBElement>        fRecord;
  24.  
  25. public:
  26.     DeclareSmallClassData(TDBElementToken, TAbstractDesignator);
  27.  
  28.     TDBElementToken(AConst<TDBElement> record);
  29.     virtual ~TDBElementToken();
  30.  
  31.     virtual AConst<TDBElement>            Record() { return fRecord; }
  32.  
  33.     virtual void                        CloneOwnedObjects();
  34.     
  35.     virtual DescType                    ObjectClass(const TAETransaction& t, Boolean recordedClass = false);
  36.     virtual Boolean                        DerivedFromOSLClass(const TAETransaction& t, DescType objectClass);
  37.  
  38.     virtual TAbstractScriptableObject*    ParentObject(const TAETransaction& t);
  39.     virtual TAbstractObjectIterator*    ElementIterator(const TAETransaction& t);
  40.  
  41.     virtual TAbstractScriptableObject*    AccessByProperty(const TAETransaction& t, DescType propertyIdentifier);
  42.  
  43.     // These accessors are used less frequently:
  44.     
  45.     virtual TAbstractScriptableObject*    AccessByUniqueID(const TAETransaction& t, DescType desiredClass, TDescriptor uniqueID);
  46.     
  47.     // Methods relating to the data types accessible to this object
  48.     
  49.     virtual DescType                    BestType(const TAETransaction& t, DescType propertyName);
  50.     virtual DescType                    DefaultType(const TAETransaction& t, DescType propertyName);
  51.     virtual Boolean                        CanReturnDataOfType(const TAETransaction& t, DescType propertyName, DescType desiredType);
  52.  
  53.     // Methods to override to provide data access to this object
  54.     
  55.     virtual TDescriptor                    GetProperty(const TAETransaction& t, DescType propertyName, DescType desiredType, unsigned long additionalInfo = 0);
  56.     virtual void                        SetProperty(const TAETransaction& t, DescType propertyName, TDescriptor& data, unsigned long additionalInfo = 0);
  57.  
  58.     virtual TDescriptor                    GetProperties(const TAETransaction& t, DescType desiredType);
  59.     
  60.     // Make an object specifier for this object
  61.     
  62.     virtual TDescriptor                    BuildObjectSpecifier(const TAETransaction& t);
  63.     virtual void                        MakeKeyDataForSelf(const TAETransaction& t, DescType& keyForm, TDescriptor& keyData);
  64.     virtual TDescriptor                    BuildSpecifierForParent(const TAETransaction& t);
  65.  
  66.     // Event handlers
  67.     
  68.     virtual TDescriptor                    AECommand(const TAETransaction& t, long aeCommandID, TAbstractScriptableObject* auxObjects = nil, long auxInfo = 0);
  69.     virtual TAbstractScriptableObject*    CreateNewElement(const TAETransaction& t, DescType newObjectClass, TDescriptor initialData, TDescriptor initialProperties, Boolean& usedInitialData, Boolean& usedInitialProperties);
  70.         
  71.     // Compare a property of this object with a descriptor
  72.     
  73.     virtual Boolean                        CompareProperty(const TAETransaction& t, DescType propertyIdentifier, DescType comparisonOperator, TDescriptor compareWith);
  74.     
  75.     virtual Boolean                        ObjectsAreTheSame(const TAETransaction& t, TAbstractScriptableObject* objectToTest);
  76.  
  77.     Boolean                                IsMetaRoot();
  78.     long                                RecordIndex();
  79.     Int64                                DocumentIdentifier();
  80.     
  81.     //
  82.     // Used to redefine this token to represent a different database element
  83.     //
  84.     void                                AssignDifferentElement(AConst<TDBElement> record) { ASSERT(fReferenceCount == 0); fRecord = record; }
  85. };
  86.  
  87. #endif
  88.